home *** CD-ROM | disk | FTP | other *** search
/ Mission 3 / Mission 3.zip / Mission 3.iso / zugabe / va45 / visual45 / objstruc.mac < prev    next >
Text File  |  1998-09-06  |  25KB  |  871 lines

  1. *-----------------------------------------------------------------------------*
  2. *                 Macros définissant l'entête d'un objet V.A                  *
  3. *-----------------------------------------------------------------------------*
  4.  
  5. GWVA_OBJ_STRUCT_HEAD:    macro CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
  6.  
  7.         IFNC "\3",""    ; guillemets car chaine de caracs
  8.          dc.l \3        ; GWVA_OBJ_NAME
  9.         ELSE
  10.          dc.l '_Obj'    ; GWVA_OBJ_NAME
  11.         ENDC
  12.         dc.w \1        ; GWVA_OBJ_CLASS
  13.         dc.w GWVA_OBJ_CTE_HANDLE_UNDEF    ; GWVA_OBJ_HANDLE
  14.         IFNC '\5',''
  15.          dc.w \5         ; GWVA_OBJ_PROPERTIES
  16.         ELSE
  17.          dc.w 0         ; GWVA_OBJ_PROPERTIES
  18.         ENDC
  19.         IFNC '\2',''
  20.          dc.l \2         ; GWVA_OBJ_METHODLIST_PTR
  21.         ELSE
  22.          dc.l GWVA_OBJ_CTE_METHODLISTPTR_UNDEF ; GWVA_OBJ_METHODLIST_PTR
  23.         ENDC
  24.         IFNC '\4',''
  25.          dc.l \4         ; GWVA_OBJ_SHORTCUTLIST_PTR
  26.         ELSE
  27.          dc.l 0        ; GWVA_OBJ_SHORTCUTLIST_PTR
  28.         ENDC
  29.     endm
  30.  
  31. GWVA_OBJ_STRUCT_FAMILY: macro ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
  32.         IFNC '\1',''
  33.          dc.l \1        ; GWVA_OBJ_FATHER_PTR
  34.         ELSE
  35.          dc.l 0        ; GWVA_OBJ_FATHER_PTR
  36.         ENDC
  37.         IFNC '\2',''
  38.          dc.l \2        ; GWVA_OBJ_NEXT_BROTHER_PTR
  39.         ELSE
  40.          dc.l 0        ; GWVA_OBJ_NEXT_BROTHER_PTR
  41.         ENDC
  42.         IFNC '\3',''
  43.          dc.l \3        ; GWVA_OBJ_FIRST_SON_PTR
  44.         ELSE
  45.          dc.l 0        ; GWVA_OBJ_FIRST_SON_PTR
  46.         ENDC
  47.     endm
  48.  
  49. *-----------------------------------------------------------------------------*
  50. *         Macros définissant la liste des méthodes de l'objet                 *
  51. *-----------------------------------------------------------------------------*
  52.  
  53. *         Macros définissant les shortcuts
  54.  
  55. GWVA_VAR_NEXT_SHORTCUT set 0
  56.  
  57. GWVA_NEXT_SHORTCUT_DIRECT:    macro KEY
  58. GWVA_VAR_NEXT_SHORTCUT set \1
  59.     endm
  60.  
  61. GWVA_NEXT_SHORTCUT_CONTROL:    macro KEY
  62.  IFGE    \1-'a'
  63. GWVA_VAR_NEXT_SHORTCUT set \1-'a'+1
  64.    IFEQ (\1-'i')*(\1-'m')
  65.     ifd OPT_GWVA_DEBUG_PRINT_COMMENTS
  66.     LIST
  67. ; V.A. WARNING *** The Shortcuts ^i and ^m  are confusing with [TAB] and [Enter]
  68.     NOLIST
  69.     endc
  70.    ENDC
  71.  ELSE
  72. GWVA_VAR_NEXT_SHORTCUT set \1-'A'+1
  73.    IFEQ (\1-'I')*(\1-'M')
  74.     ifd OPT_GWVA_DEBUG_PRINT_COMMENTS
  75.     LIST
  76. ; V.A. WARNING *** The Shortcuts ^I and ^M  are confusing with [TAB] and [Enter]
  77.     NOLIST
  78.     endc
  79.    ENDC
  80.  ENDC
  81.         endm
  82.  
  83. GWVA_NEXT_SHORTCUT_ALTERNATE:    macro KEY
  84. GWVA_VAR_NEXT_SHORTCUT set K_ALT<<8+\1
  85.         endm
  86.  
  87.         *--------------------------------*
  88.  
  89. GWVA_OBJ_STRUCT_METHOD:    macro METHODE,ROUTINE;CLASS;PROPERTIES
  90.         dc.l \1        ; GWVA_OBJ_METHODLIST_ITEM_METHOD
  91.         IFNC '\3',''
  92.          dc.w \3        ; GWVA_OBJ_METHODLIST_ITEM_CLASS
  93.         ELSE
  94.          dc.w GWVA_OBJ_CTE_BEFORE_AFTER_ON_OBJECT_CLASS        ; GWVA_OBJ_METHODLIST_ITEM_CLASS
  95.         ENDC
  96.         IFNC '\4',''
  97.          dc.w \4        ; GWVA_OBJ_METHODLIST_ITEM_PROPERTIES
  98.         ELSE
  99.          dc.w 0        ; GWVA_OBJ_METHODLIST_ITEM_PROPERTIES
  100.         ENDC
  101.         dc.l \2        ; GWVA_OBJ_METHODLIST_ITEM_ROUTINE
  102.     endm
  103.  
  104. GWVA_OBJ_STRUCT_METHOD_END_LIST: macro
  105.         GWVA_OBJ_STRUCT_METHOD    GWVA_OBJ_CTE_END_METHOD_LIST,0
  106.     endm
  107.  
  108. *-----------------------------------------------------------------------------*
  109. *     Macros définissant la liste des shortcut des méthodes de l'objet        *
  110. *-----------------------------------------------------------------------------*
  111.  
  112. GWVA_OBJ_STRUCT_SHORTCUT:macro METHOD,SHORTCUT
  113.         IFNC '\2',''
  114.          dc.w \2        ; GWVA_OBJ_SHORTCUTLIST_ITEM_SHORTCUT
  115.         ELSE
  116.          dc.w GWVA_VAR_NEXT_SHORTCUT    ; GWVA_OBJ_SHORTCUTLIST_ITEM_SHORTCUT
  117. GWVA_VAR_NEXT_SHORTCUT set 0
  118.         ENDC
  119.         dc.l \1        ; GWVA_OBJ_SHORTCUTLIST_ITEM_METHOD
  120.     endm
  121.  
  122. GWVA_OBJ_STRUCT_SHORTCUT_END_LIST: macro
  123.         dc.w GWVA_ROOT_CTE_SHORTCUT_ENDS_LIST
  124.     endm
  125.  
  126. *-----------------------------------------------------------------------------------*
  127. * Macros définissant la liste de correspondance classe->liste de méthode par défaut *
  128. *-----------------------------------------------------------------------------------*
  129.  
  130. GWVA_OBJ_STRUCT_CLASSMETHOD:    macro CLASS,DEFAULTMETHOD_PTR
  131.         dc.w \1        ; GWVA_OBJ_CLASSLIST_ITEM_CLASS
  132.         dc.l \2        ; GWVA_OBJ_CLASSLIST_ITEM_DEFAULTMETHOD_PTR
  133.     endm
  134.  
  135. GWVA_OBJ_STRUCT_CLASSMETHOD_END_LIST: macro
  136.         GWVA_OBJ_STRUCT_CLASSMETHOD    GWVA_OBJ_CTE_END_CLASS_LIST,GWVA_OBJ_CTE_END_LINK_CLASS_LIST
  137.     endm
  138.  
  139. *-----------------------------------------------------------------------------*
  140. *           Macros définissant la liste d'héritage des classes                *
  141. *-----------------------------------------------------------------------------*
  142.  
  143. GWVA_OBJ_STRUCT_INHERITANCE:    macro NEWCLASS,OLDCLASS
  144.         IFNC '\1','GWVA_OBJ_CTE_END_INHERITANCE_LIST'
  145. \1        =   _GWVA_VAR_CLASS_COUNTER
  146. _GWVA_VAR_CLASS_COUNTER    set _GWVA_VAR_CLASS_COUNTER+1
  147.         ENDC
  148.         dc.w \1        ; GWVA_OBJ_INHERITANCELIST_ITEM_NEWCLASS
  149.         IFNC '\2',''
  150.          dc.w \2        ; GWVA_OBJ_INHERITANCELIST_ITEM_OLDCLASS
  151.         ELSE
  152.          dc.w GWVA_OBJ_CTE_CLASS_UNDEF        ; GWVA_OBJ_METHODLIST_ITEM_PROPERTIES
  153.         ENDC
  154.     endm
  155.  
  156. GWVA_OBJ_STRUCT_INHERITANCE_END_LIST: macro
  157.         GWVA_OBJ_STRUCT_INHERITANCE    GWVA_OBJ_CTE_END_INHERITANCE_LIST,GWVA_OBJ_CTE_END_INHERITANCE_LIST
  158.         dc.l GWVA_OBJ_CTE_END_LINK_INHERITANCE_LIST    ; ruse de folie à changer si possible
  159.     endm
  160.  
  161. *-----------------------------------------------------------------------------*
  162. *                       Macros définissant l'objet fenêtre                    *
  163. *-----------------------------------------------------------------------------*
  164.  
  165. *GWVA_WIND_STRUCT_HEAD:    macro CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
  166. *        GWVA_OBJ_STRUCT_HEAD \1,\2,\4,\3
  167. *        GWVA_OBJ_STRUCT_FAMILY \5,\6,\7
  168. *        endm
  169.  
  170. GWVA_WIND_STRUCT_BASE:    macro FLAGS,PROPERTIES,NAME_PTR,INFO_PTR;TOPABLE_STATE
  171.         dc.w \1        ; FLAGS
  172.         dc.w 0        ; STATUS
  173.         dc.l \2        ; PROPERTIES
  174.         IFNC '\5',''
  175.          dc.w \5        ; TOPABLE_STATE
  176.         ELSE
  177.          dc.w 0        ; TOPABLE_STATE
  178.         ENDC
  179.         dc.l \3,\4        ; NAME_PTR,INFO_PTR
  180.     endm
  181.  
  182. GWVA_WIND_STRUCT_DEF_EXTEND: macro ;ICON_WIND_PTR;MENU_SPEC_PTR;MOUSE_SPEC_PTR
  183.         IFNC '\1',''
  184.          dc.l \1        ; ICON_WIND_PTR
  185.         ELSE
  186.          dc.l 0        ; ICON_WIND_PTR
  187.         ENDC
  188.         dc.l 0        ; FOCUSED_CHILD_PTR
  189.         IFNC '\3',''
  190.          dc.l \3        ; MOUSE_SPEC_PTR
  191.         ELSE
  192.          dc.l 0        ; MOUSE_SPEC_PTR
  193.         ENDC
  194.         IFNC '\2',''
  195.          dc.l \2        ; MENU_SPEC_PTR
  196.         ELSE
  197.          dc.l 0        ; MENU_SPEC_PTR
  198.         ENDC
  199.         dc.w 0        ; MENU_HEIGHT
  200.     endm
  201.  
  202. GWVA_WIND_STRUCT_FIRST_GEOMETRY: macro FIRST_EXT_DX,FIRST_EXT_DY;
  203.             ; ;FIRST_INT_VISIBLE_W,FIRST_INT_VISIBLE_H
  204.             ; ;FIRST_CONTENTS_W,FIRST_CONTENTS_H
  205.             ; ;FIRST_CONTENTS_DX,FIRST_CONTENTS_DY
  206.             ; ;FIRST_INT_BORDERS_W,FIRST_INT_BORDERS_H
  207.  
  208.         dc.w \1        ; FIRST_EXT_DX
  209.         dc.w \2        ; FIRST_EXT_DY
  210.  
  211.         IFNC '\3',''
  212.          dc.w \3,\4        ; FIRST_INT_VISIBLE_W,FIRST_INT_VISIBLE_H
  213.         ELSE
  214.          dc.w GWVA_WIND_CTE_SIZE_UNDEF,GWVA_WIND_CTE_SIZE_UNDEF    ; FIRST_INT_VISIBLE_W,FIRST_INT_VISIBLE_H
  215.         ENDC
  216.  
  217.         IFNC '\7',''
  218.          dc.w \7,\8        ; FIRST_CONTENTS_DX,FIRST_CONTENTS_DY
  219.         ELSE
  220.          dc.w 0,0        ; FIRST_CONTENTS_DX,FIRST_CONTENTS_DY
  221.         ENDC
  222.  
  223.         IFNC '\5',''
  224.          dc.w \5,\6        ; FIRST_CONTENTS_W,FIRST_CONTENTS_H
  225.         ELSE
  226.          dc.w GWVA_WIND_CTE_SIZE_UNDEF,GWVA_WIND_CTE_SIZE_UNDEF    ; FIRST_CONTENTS_W,FIRST_CONTENTS_H
  227.         ENDC
  228.  
  229.         IFNC '\9',''
  230.          dc.w \9,\A        ; FIRST_INT_BORDERS_W,FIRST_INT_BORDERS_H
  231.         ELSE
  232.          IFNC '\7',''
  233.           dc.w \7,\8    ; =FIRST_CONTENTS_DX,FIRST_CONTENTS_DY (pour éviter une erreur)
  234.          ELSE
  235.           dc.w 0,0        ; FIRST_INT_BORDERS_W,FIRST_INT_BORDERS_H
  236.          ENDC
  237.         ENDC
  238.  
  239.         dcb.w 10,GWVA_WIND_CTE_FIELD_UNDEF        ; INT_DX,INT_DY,INT_VISIBLE_W,INT_VISIBLE_H
  240.                 ; CONTENTS_DX,CONTENTS_DY,CONTENTS_W,CONTENTS_H
  241.                 ; INT_BORDERS_W,INT_BORDERS_H
  242.     endm
  243.  
  244. GWVA_WIND_STRUCT_USER:    macro ;USER_PTR1;USER_PTR2
  245.         IFNC '\1',''
  246.          dc.l \1        ; USER_PTR1
  247.         ELSE
  248.          dc.l 0        ; USER_PTR1
  249.         ENDC
  250.         IFNC '\2',''
  251.          dc.l \2        ; USER_PTR2
  252.         ELSE
  253.          dc.l 0        ; USER_PTR2
  254.         ENDC
  255.         dc.w GWVA_WIND_CTE_HANDLE_UNDEF    ; GEM_HANDLE
  256.     endm
  257.  
  258. *-----------------------------------------------------------------------------*
  259. *        Macros définissant l'objet fenêtre application principale            *
  260. *-----------------------------------------------------------------------------*
  261.  
  262. GWVA_WAPP_STRUCT_BASE:    macro PROPERTIES,REG_NAME,ACC_NAME,RSC_INFO;TSR_SIZE
  263.         dc.w \1        ; PROPERTIES
  264.         dc.l \2        ; REG_NAME
  265.         dc.l \3        ; ACC_NAME
  266.         dc.l \4        ; RSC_INFO
  267.         IFNC '\5',''
  268.          dc.l \5        ; TSR_SIZE
  269.         ELSE
  270.          dc.l 0        ; TSR_SIZE
  271.         ENDC
  272.     endm
  273.  
  274. GWVA_WAPP_STRUCT_BACKGROUND:    macro ;BACKGROUND_WIND_PTR
  275.         IFEQ \#
  276.          dc.l 0        ; BACKGROUND_WIND_PTR
  277.         ELSE
  278.          dc.l \1        ; BACKGROUND_WIND_PTR
  279.         ENDC
  280.     endm
  281.  
  282. *-----------------------------------------------------------------------------*
  283. *               Macros définissant l'objet fenêtre bitmap                     *
  284. *-----------------------------------------------------------------------------*
  285.  
  286. GWVA_WBITM_STRUCT_BASE: macro ;PROPERTIES;NB_BITPLANES;IMG_WIDTH,IMG_HEIGHT;DATA_PTR;PAL_PTR
  287.         IFNC '\1',''
  288.          dc.w \1        ; PROPERTIES
  289.         ELSE
  290.          dc.w 0        ; PROPERTIES
  291.         ENDC
  292.         IFNC '\3',''
  293.          dc.w \3,\4        ; IMG_WIDTH,IMG_HEIGHT
  294.         ELSE
  295.          dc.w 0,0        ; IMG_WIDTH,IMG_HEIGHT
  296.         ENDC
  297.         IFNC '\5',''
  298.          dc.l \5        ; DATA_PTR
  299.         ELSE
  300.          dc.l 0        ; DATA_PTR
  301.         ENDC
  302.         IFNC '\6',''
  303.          dc.l \6        ; PAL_PTR
  304.         ELSE
  305.          dc.l 0        ; PAL_PTR
  306.         ENDC
  307.         IFNC '\2',''
  308.          dc.w \2        ; NB_BITPLANES
  309.         ELSE
  310.          dc.w 0        ; NB_BITPLANES
  311.         ENDC
  312.         dcb.w 2,0        ; AFF_DX,AFF_DY
  313.     endm
  314.  
  315. *-----------------------------------------------------------------------------*
  316. *               Macros définissant l'objet fenêtre texte                      *
  317. *-----------------------------------------------------------------------------*
  318.  
  319. GWVA_WTEXT_STRUCT_BASE: macro NB_COLONNES,NB_LIGNES;FNT_SIZE
  320.         dc.w 0        ; PROPERTIES
  321.         dc.w \1,\2        ; NB_COLONNES,NB_LIGNES
  322.         IFNC '\3',''
  323.          dc.w \3        ; FNT_SIZE
  324.         ELSE
  325.          dc.w 13        ; FNT_SIZE
  326.         ENDC
  327.         dcb.w 2,0        ; CELL_WIDTH,CELL_HEIGHT
  328.         dc.l 0        ; MALOC
  329.         dcb.w 8,0        ; CUR_BUF_COL,CUR_BUF_LIGN,CUR_AFF_COL,CUR_AFF_LIGN,BUF_COLONNE,BUF_LIGNE,AFF_COLONNE,AFF_LIGNE
  330.  
  331.         ifd MDL_WIND_STYLIZED_EDITABLE_TEXT
  332.         dc.l 0        ; MALLOC_STYLE
  333.         dcb.w 4,0        ; TABLE_PALETTE
  334.         dc.b 0        ; CURRENT_STYLE
  335.         dc.b 0        ; CURRENT_MODE
  336.         dc.w 0        ; CURRENT_XPOS
  337.         dc.w 0        ; CURRENT_YPOS
  338.         dc.l 0        ; SPECIAL_DRAWING
  339.         endc
  340.     endm
  341.  
  342. *-----------------------------------------------------------------------------*
  343. *               Macros définissant l'objet fenêtre ressource                  *
  344. *-----------------------------------------------------------------------------*
  345.  
  346. GWVA_WRSC_STRUCT_BASE: macro TREE;PROPERTIES;IDX;DEPTH
  347.         IFNC '\2',''
  348.          dc.w \2        ; PROPERTIES
  349.         ELSE
  350.          dc.w 0        ; PROPERTIES
  351.         ENDC
  352.         dc.w \1        ; TREE
  353.         IFNC '\3',''
  354.          dc.w \3        ; IDX
  355.         ELSE
  356.          dc.w 0        ; IDX
  357.         ENDC
  358.         IFNC '\4',''
  359.          dc.w \4        ; DEPTH
  360.         ELSE
  361.          dc.w 7        ; DEPTH
  362.         ENDC
  363.         dc.l 0        ; TREE_PTR
  364.     endm
  365.  
  366. GWVA_WRSC_STRUCT_CLONE: macro ;IS_CLONE_FORM,CLONE_MAIN_PTR;CLONE_FORM_SAVE
  367.         IFNC '\1',''
  368.          dc.w \1        ; IS_CLONE_FORM
  369.          dc.l \2        ; CLONE_MAIN_PTR
  370.         ELSE
  371.          dc.w 0        ; IS_CLONE_FORM
  372.          dc.l 0        ; CLONE_MAIN_PTR
  373.         ENDC
  374.         IFNC '\3',''
  375.          dc.l \3        ; CLONE_FORM_SAVE
  376.         ELSE
  377.          dc.l 0        ; CLONE_FORM_SAVE
  378.         ENDC
  379.     endm
  380.  
  381. *-----------------------------------------------------------------------------*
  382. *               Macros définissant l'objet fenêtre popup ressource            *
  383. *-----------------------------------------------------------------------------*
  384.  
  385. GWVA_WRSCPOPUP_STRUCT_BASE: macro ATTACHED_OBJECT,SELECTED_METHOD;PROPERTIES
  386.         IFNC '\3',''
  387.          dc.w \3        ; PROPERTIES
  388.         ELSE
  389.          dc.w 0        ; PROPERTIES
  390.         ENDC
  391.         dc.w -1        ; SELECTED_ITEM_IDX
  392.         dc.w -1        ; CURRENT_ITEM_IDX
  393.         dc.l \1        ; ATTACHED_OBJECT
  394.         dc.l \2        ; SELECTED_METHOD
  395.     endm
  396.  
  397. *-----------------------------------------------------------------------------*
  398. *                 Macros définissant les objets fenêtres MENU                 *
  399. *-----------------------------------------------------------------------------*
  400.  
  401. GWVA_RSC_STRUCT_BASE: macro TREE;PROPERTIES;IDX;DEPTH
  402.         IFNC '\2',''
  403.          dc.w \2        ; PROPERTIES
  404.         ELSE
  405.          dc.w 0        ; PROPERTIES
  406.         ENDC
  407.         dc.w \1        ; TREE
  408.         IFNC '\3',''
  409.          dc.w \3        ; IDX
  410.         ELSE
  411.          dc.w 0        ; IDX
  412.         ENDC
  413.         IFNC '\4',''
  414.          dc.w \4        ; DEPTH
  415.         ELSE
  416.          dc.w 7        ; DEPTH
  417.         ENDC
  418.         dc.l 0        ; TREE_PTR
  419.     endm
  420.  
  421. GWVA_RSC_STRUCT_CLONE: macro ;IS_CLONE_FORM,CLONE_MAIN_PTR;CLONE_FORM_SAVE
  422.         IFNC '\1',''
  423.          dc.w \1        ; IS_CLONE_FORM
  424.          dc.l \2        ; CLONE_MAIN_PTR
  425.         ELSE
  426.          dc.w 0        ; IS_CLONE_FORM
  427.          dc.l 0        ; CLONE_MAIN_PTR
  428.         ENDC
  429.         IFNC '\3',''
  430.          dc.l \3        ; CLONE_FORM_SAVE
  431.         ELSE
  432.          dc.l 0        ; CLONE_FORM_SAVE
  433.         ENDC
  434.     endm
  435.  
  436. GWVA_MENU_STRUCT_BASE:    macro ;LIST_ATTACH_PTR;SCROLL_INDEX;PROPERTIES
  437.         IFNC '\3',''
  438.          dc.w \3        ; PROPERTIES
  439.         ELSE
  440.          dc.w 0        ; PROPERTIES
  441.         ENDC
  442.         dc.w 0        ; STATUS
  443.         IFNC '\2',''
  444.          dc.w \2        ; SCROLL_INDEX
  445.         ELSE
  446.          dc.w 0        ; SCROLL_INDEX
  447.         ENDC
  448.         IFNC '\1',''
  449.          dc.l \1        ; LIST_ATTACH_PTR
  450.         ELSE
  451.          dc.l 0        ; LIST_ATTACH_PTR
  452.         ENDC
  453.         dc.w -1        ; TITLE_SELECTED
  454.         dc.w -1        ; DROPDOWN_LIST_SELECTED
  455.     endm
  456.  
  457.             *--------*
  458.  
  459. GWVA_SUBMENU_STRUCT_DEF:macro TREE_OBJ_ATTACHED,OBJ_IDX_ATTACHED,TREE,INDEX,WHICH_ALIGN;MENU_SCROLL
  460.         dc.w \1        ; TREE_ATTACHED
  461.         dc.w \2        ; IDX_ATTACHED
  462.         dc.w \3        ; TREE
  463.         dc.w \4        ; IDX
  464.         dc.w \5        ; WHICH_ALIGN
  465.         IFNC '\6',''        
  466.          dc.w \6        ; SCROLL
  467.         ELSE
  468.          dc.w 0        ; SCROLL
  469.         ENDC
  470.     endm
  471.             *--------*
  472.  
  473. ; Commun pour les menus et les sous-menus
  474.  
  475. GWVA_MENU_STRUCT_MNULIST: macro IDX,ROUTINE;SHORTCUT
  476.         IFNC "\3",""    ; guillemets car chaine de caracs
  477.           dc.w \3        ; SHORTCUT
  478.         ELSE
  479.           dc.w GWVA_VAR_NEXT_SHORTCUT
  480. GWVA_VAR_NEXT_SHORTCUT set 0
  481.         ENDC
  482.         dc.w \1        ; IDX
  483.         dc.l \2        ; ROUTINE
  484.     endm
  485.  
  486. GWVA_MENU_STRUCT_MNULIST_END: macro
  487.         dc.w GWVA_ROOT_CTE_SHORTCUT_ENDS_LIST    ; SHORTCUT
  488.     endm
  489.  
  490. *-----------------------------------------------------------------------------*
  491. *                 Macros définissant les objets fenêtres FORM                 *
  492. *-----------------------------------------------------------------------------*
  493.  
  494. GWVA_WFORM_STRUCT_BASE:    macro ;FIRST_FOCUSED_IDX;PROPERTIES
  495.         IFNC '\2',''
  496.          dc.w \2        ; PROPERTIES
  497.         ELSE
  498.          dc.w 0        ; PROPERTIES
  499.         ENDC
  500.         IFNC '\1',''
  501.          dc.w \1        ; FIRST_FOCUSED_OBJECT
  502.         ELSE
  503.          dc.w GWVA_WFORM_CTE_FOCUSED_IDX_UNDEF    ; FIRST_FOCUSED_OBJECT
  504.         ENDC
  505.         dc.w GWVA_WFORM_CTE_FOCUSED_IDX_UNDEF    ; FOCUSED_IDX
  506.         dc.w GWVA_WFORM_CTE_FOCUSED_IDX_CURSOR_POS_UNDEF ; FOCUSED_IDX_CURSOR_POS
  507.         endm
  508.  
  509. *-----------------------------------------------------------------------------*
  510. *-----------------------------------------------------------------------------*
  511. *          Macros définissant les objets formulaires de base du V.A.          *
  512. *-----------------------------------------------------------------------------*
  513. *-----------------------------------------------------------------------------*
  514.  
  515. *GWVA_FORM_OBJ_STRUCT_HEAD:    macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;DEFAULT_METHODLIST_PTR
  516. *        IFNC '\7',''
  517. *        GWVA_OBJ_STRUCT_HEAD GWVA_OBJ_CLASS_FORM_OBJ,\7,\1,\3,\2
  518. *        ELSE
  519. *        GWVA_OBJ_STRUCT_HEAD GWVA_OBJ_CLASS_FORM_OBJ,GWVA_OBJ_CTE_METHODLISTPTR_UNDEF,\1,\3,\2
  520. *        ENDC
  521. *        GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
  522. *        endm
  523.  
  524. *GWVA_FORM_OBJ_STRUCT_BASE:    macro CLASS;PROPERTIES
  525. *        IFNC '\2',''
  526. *        dc.w \2        ; PROPERTIES
  527. *        ELSE
  528. *        dc.w 0
  529. *        ENDC
  530. *        dc.w \1        ; CLASS
  531. *        endm
  532.  
  533. *-----------------------------------------------------------------------------*
  534. *          Macros définissant l'objet formulaire.                             *
  535. *-----------------------------------------------------------------------------*
  536.  
  537. GWVA_FORM_STRUCT_HEAD:    macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
  538.             ; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
  539.         GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM,\1,\2,\3,\7
  540.             ; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
  541.         GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
  542.         endm
  543.  
  544. GWVA_FORM_STRUCT_BASE:    macro ;PROPERTIES
  545.         IFNC '\1',''
  546.          dc.w \1        ; PROPERTIES
  547.         ELSE
  548.          dc.w 0
  549.         ENDC
  550.         endm
  551.  
  552. *-----------------------------------------------------------------------------*
  553. *          Macros définissant l'objet formulaire bouton.                      *
  554. *-----------------------------------------------------------------------------*
  555.  
  556. GWVA_FBTON_STRUCT_HEAD:    macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
  557.             ; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
  558.         GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM.BUTTON,\1,\2,\3,\7
  559.             ; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
  560.         GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
  561.             ; ;PROPERTIES
  562.         GWVA_FORM_STRUCT_BASE
  563.         endm
  564.  
  565. GWVA_FBTON_STRUCT_BASE:    macro MAIN_IDX;PROPERTIES;STATE
  566.         IFNC '\2',''
  567.          dc.w \2        ; PROPERTIES
  568.         ELSE
  569.          dc.w 0        ; PROPERTIES
  570.         ENDC
  571.         dc.w \1        ; MAIN_IDX
  572.         dc.l 0        ; MAIN_PTR
  573.         IFNC '\3',''
  574.          dc.w \3        ; STATE
  575.         ELSE
  576.          dc.w 0        ; STATE
  577.         ENDC
  578.         endm
  579.  
  580. *-----------------------------------------------------------------------------*
  581. *          Macros définissant l'objet formulaire progress bar                 *
  582. *-----------------------------------------------------------------------------*
  583.  
  584. GWVA_FPBAR_STRUCT_HEAD:    macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
  585.             ; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
  586.         GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM.PROGRESS_BAR,\1,\2,\3,\7
  587.             ; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
  588.         GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
  589.             ; ;PROPERTIES
  590.         GWVA_FORM_STRUCT_BASE
  591.         endm
  592.  
  593. GWVA_FPBAR_STRUCT_BASE:    macro FATHER_IDX,SON_IDX;TEXT_IDX
  594.         dc.w -1        ; PERCENT
  595.         IFNC '\3',''
  596.          dc.w \3        ; TEXT_IDX
  597.         ELSE
  598.          dc.w 0        ; TEXT_IDX
  599.         ENDC
  600.         dc.w \1        ; FATHER_IDX
  601.         dc.w \2        ; SON_IDX
  602.         endm
  603.  
  604. *-----------------------------------------------------------------------------*
  605. *             Macros définissant l'objet formulaire popup                     *
  606. *-----------------------------------------------------------------------------*
  607.  
  608. GWVA_FPOP_STRUCT_HEAD:    macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
  609.             ; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
  610.         GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM.MENU_POPUP,\1,\2,\3,\7
  611.             ; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
  612.         GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
  613.             ; ;PROPERTIES
  614.         GWVA_FORM_STRUCT_BASE
  615.         endm
  616.  
  617. GWVA_FPOP_STRUCT_BASE:    macro MAIN_IDX,POP_TREE,POP_IDX,SELECTION;PROPERTIES
  618.         IFNC '\5',''
  619.          dc.w \5        ; PROPERTIES
  620.         ELSE
  621.          dc.w 0        ; PROPERTIES
  622.         ENDC
  623.         dc.w \1        ; MAIN_IDX
  624.         dc.w \2        ; POP_TREE
  625.         dc.w \3        ; POP_IDX
  626.         dc.w \4        ; SELECTION
  627.         endm
  628.  
  629. *-----------------------------------------------------------------------------*
  630. *             Macros définissant l'objet formulaire radio-bouton              *
  631. *-----------------------------------------------------------------------------*
  632.  
  633. GWVA_FRADIO_STRUCT_HEAD:macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
  634.             ; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
  635.         GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM.RADIO_BUTTON,\1,\2,\3,\7
  636.             ; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
  637.         GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
  638.             ; ;PROPERTIES
  639.         GWVA_FORM_STRUCT_BASE
  640.         endm
  641.  
  642. GWVA_FRADIO_STRUCT_BASE:macro FATHER_IDX;SELECTION;PROPERTIES
  643.         IFNC '\3',''
  644.          dc.w \3        ; PROPERTIES
  645.         ELSE
  646.          dc.w 0        ; PROPERTIES
  647.         ENDC
  648.         dc.w \1        ; FATHER_IDX
  649.         IFNC '\2',''
  650.          dc.w \2        ; SELECTION
  651.         ELSE
  652.          dc.w 0        ; SELECTION
  653.         ENDC
  654.         endm
  655.  
  656. *-----------------------------------------------------------------------------*
  657. *           Macros définissant l'objet formulaire click-equivalent            *
  658. *-----------------------------------------------------------------------------*
  659.  
  660. GWVA_FCLICKEQ_STRUCT_HEAD:macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
  661.             ; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
  662.         GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM.CLICK_EQUIV,\1,\2,\3,\7
  663.             ; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
  664.         GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
  665.             ; ;PROPERTIES
  666.         GWVA_FORM_STRUCT_BASE
  667.         endm
  668.  
  669. GWVA_FCLICKEQ_STRUCT_BASE:macro MAIN_IDX,TARGET_IDX
  670.         dc.w \1        ; MAIN_IDX
  671.         dc.l 0        ; MAIN_PTR
  672.         dc.w \2        ; TARGET_IDX
  673.         endm
  674.  
  675. *-----------------------------------------------------------------------------*
  676. *                Macros définissant l'objet formulaire texte                  *
  677. *-----------------------------------------------------------------------------*
  678.  
  679. GWVA_FTEXT_STRUCT_HEAD:macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
  680.             ; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
  681.         GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM.TEXT,\1,\2,\3,\7
  682.             ; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
  683.         GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
  684.             ; ;PROPERTIES
  685.         GWVA_FORM_STRUCT_BASE
  686.         endm
  687.  
  688. GWVA_FTEXT_STRUCT_BASE:    macro MAIN_IDX;PROPERTIES
  689.         IFNC '\2',''
  690.         dc.w \2        ; PROPERTIES
  691.         ELSE
  692.         dc.w 0        ; PROPERTIES
  693.         ENDC
  694.         dc.w \1        ; MAIN_IDX
  695.         dc.l 0        ; MAIN_PTR
  696.         dc.l 0        ; STRING_PTR
  697.         endm
  698.  
  699. *-----------------------------------------------------------------------------*
  700. *           Macros définissant l'objet formulaire slider                      *
  701. *-----------------------------------------------------------------------------*
  702.  
  703. GWVA_FSLIDER_STRUCT_HEAD:macro ;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR;PROPERTIES
  704.             ; CLASS;METHODLIST_PTR;NAME;SHORTCUTLIST_PTR;PROPERTIES
  705.         GWVA_OBJ_STRUCT_HEAD GWVA_CLASS_FORM.SLIDER,\1,\2,\3,\7
  706.             ; ;FATHER_PTR;NEXT_BROTHER_PTR;FIRST_SON_PTR
  707.         GWVA_OBJ_STRUCT_FAMILY \4,\5,\6
  708.             ; ;PROPERTIES
  709.         GWVA_FORM_STRUCT_BASE
  710.         endm
  711.  
  712. GWVA_FSLIDER_STRUCT_BASE:macro PROPERTIES,FATHER_IDX,SON_IDX;PAGESIZE;LENGTH
  713.         dc.w \1        ; PROPERTIES
  714.         dc.l 0        ; POS
  715.         IFNC '\4',''
  716.          dc.l \4        ; PAGESIZE
  717.         ELSE
  718.          dc.l 0        ; PAGESIZE
  719.         ENDC
  720.         IFNC '\5',''
  721.          dc.l \5        ; LENGTH
  722.         ELSE
  723.          dc.l 0        ; LENGTH
  724.         ENDC
  725.         dc.w \2        ; FATHER_IDX
  726.         dc.w \3        ; SON_IDX
  727.         endm
  728.  
  729. GWVA_FSLIDER_STRUCT_GADGETS:macro ;P1_IDX;M1_IDX;P1P_IDX;M1P_IDX
  730.         IFNC '\1',''
  731.          dc.w \1        ; P1_IDX
  732.         ELSE
  733.          dc.w 0        ; P1_IDX
  734.         ENDC
  735.         IFNC '\2',''        
  736.          dc.w \2        ; M1_IDX
  737.         ELSE
  738.          dc.w 0        ; M1_IDX
  739.         ENDC
  740.         IFNC '\3',''
  741.          dc.w \3        ; P1P_IDX
  742.         ELSE
  743.          dc.w 0        ; P1P_IDX
  744.         ENDC
  745.         IFNC '\4',''
  746.          dc.w \4        ; M1P_IDX
  747.         ELSE
  748.          dc.w 0        ; M1P_IDX
  749.         ENDC
  750.         endm
  751.  
  752.  ifeq 1
  753.  
  754. ; l'objet générique n'admet que des évènements : il n'a donc pas de macro spécifique
  755.  
  756. ; la macro de création de liste d'évènements :
  757. ; sert pour : objet générique,bouton,extd_text
  758.  
  759. *GWVA_WFORM_STRUCT_OBJ_EVENT:    macro EVNT,ROUTINE
  760. *        dc.w \1
  761. *        dc.l \2
  762. *    endm
  763. *
  764. *GWVA_WFORM_STRUCT_OBJ_END_LIST:    macro
  765. *        dc.w -1
  766. *    endm
  767.  
  768. ; Structure spécifique de l'objet 'bouton'
  769.  
  770. *GWVA_WFORM_STRUCT_BUTTON:    macro ;STATE
  771. *        IFNC '\1',''
  772. *         dc.w \1        ; BTON_OBJ_STATE
  773. *        ELSE
  774. *         dc.w 0        ; BTON_OBJ_STATE
  775. *        ENDC
  776. *    endm
  777.  
  778. ; Structure spécifique de l'objet 'pop-up'
  779.  
  780. GWVA_WFORM_STRUCT_POPUP:    macro TREE_FORM,FORM_IDX,SELECTION;CHANGE_ROUTINE
  781.         dc.w \1        ; POP_OBJ_TREE_FORM
  782.         dc.w \2        ; POP_OBJ_FORM_IDX
  783.         dc.w \3        ; POP_OBJ_SELECTION
  784.         IFNC '\4',''
  785.          dc.l \4        ; POP_OBJ_CHANGE_ROUTINE
  786.         ELSE
  787.          dc.l 0        ; POP_OBJ_CHANGE_ROUTINE
  788.         ENDC
  789.     endm
  790.  
  791. ; Structure spécifique de l'objet 'radio-bouton'
  792.  
  793. GWVA_WFORM_STRUCT_RBUTTON:    macro ;SELECTION;CHANGE_ROUTINE
  794.         IFNC '\1',''
  795.         dc.w \1        ; RADIO_OBJ_SELECTION
  796.         ELSE
  797.         dc.w 0        ; RADIO_OBJ_SELECTION
  798.         ENDC
  799.         IFNC '\2',''
  800.          dc.l \2        ; RADIO_OBJ_CHANGE_ROUTINE
  801.         ELSE
  802.          dc.l 0        ; RADIO_OBJ_CHANGE_ROUTINE
  803.         ENDC
  804.     endm
  805.  
  806. ; Structure spécifique de l'objet 'clique équivalent'
  807.  
  808. GWVA_WFORM_STRUCT_CLICK_EQUIV:    macro IDX
  809.         dc.w \1        ; CLICK_EQUIV_OBJ_IDX
  810.     endm
  811.  
  812. ; Structure spécifique de l'objet 'texte étendu'
  813.  
  814. GWVA_WFORM_STRUCT_EXTD_TEXT_BASE:    macro ; PROPERTIES
  815.         IFNC '\1',''
  816.          dc.w \1        ; PROPERTIES
  817.         ELSE
  818.          dc.w 0        ; PROPERTIES
  819.         ENDC
  820.     endm
  821.  
  822. GWVA_WFORM_STRUCT_EXTD_TEXT_IDX:        macro IDX
  823.          dc.w \1        ; IDX
  824.     endm
  825.  
  826. GWVA_WFORM_STRUCT_EXTD_TEXT_END_LIST:    macro
  827.         dc.w -1
  828.     endm
  829.  
  830. ;******************************************************************************
  831.  
  832. * KK
  833.  
  834. *-----------------------------------------------------------------------------*
  835. *  Macros définissant un élément de la table de touches associée à la fenêtre *
  836. *-----------------------------------------------------------------------------*
  837.  
  838. GWVA_WIND_STRUCT_KEY:    macro SHORTCUT,ROUTINE;TYPE
  839.  
  840.         IFNC '\3',''
  841.          dc.w \3        ; type de raccourci (0 normal, 1=ctrl+C, 2=ctrl+V, 3=ctrl+X)
  842.         ELSE
  843.          dc.w 0        ; par défaut, raccourci normal
  844.         ENDC
  845.         dc.w \1        ; shortcut
  846.         dc.l \2        ; pointeur sur la routine
  847.     endm
  848.  
  849. GWVA_WIND_STRUCT_END_KEY: macro
  850.         dc.w -1
  851.     endm
  852.  
  853.  
  854. GWVA_WFORM_STRUCT_OBJ:    macro IDX,TYPE,PTR_STRUCT;SHORTCUT
  855.         dc.w \1        ; obj idx
  856.         IFNC "\4",""
  857.          dc.w \4        ; shortcut
  858.         ELSE
  859.          dc.w GWVA_NEXT_SHORTCUT_ON
  860. GWVA_NEXT_SHORTCUT_ON set 0
  861.         ENDC
  862.         dc.w \2        ; type d'objet
  863.         dc.l \3        ; ptr struct
  864.     endm
  865.     
  866. GWVA_WFORM_STRUCT_END_LIST: macro
  867.         dc.w -1            
  868.     endm
  869.  
  870.  endc    ; ifeq 1
  871.